package com.alibaba.citrus.ots.application.report.ability.repository;

import com.epoch.app.bcorder.model.dto.CategorySDO;
import com.epoch.app.bcorder.model.dto.EmployeeSDO;
import com.epoch.app.bcorder.model.dto.OrganizationSDO;
import com.epoch.app.bcorder.model.dto.PlatformSDO;
import com.epoch.app.bcorder.model.dto.ScItemSDO;
import com.epoch.app.bcorder.model.dto.WarehouseInfo;
import com.epoch.app.crplatformenhance.sdo.CustomerAddressSDO;
import com.epoch.app.crplatformenhance.sdo.CustomerSDO;
import com.epoch.app.crunifiedinventory.model.dto.WarehouseInfoDTO;
import com.epoch.app.crunifiedinventory.model.dto.WmsSDO;

import java.util.List;
import java.util.Map;

/**
 * @author zhoubc
 * @description: TODO
 * @date 2021/11/25 17:38
 */
public interface BaseDataQueryRepository {

    Map<String, OrganizationSDO> batchQueryOrganization(List<String> ids);

    Map<String, OrganizationSDO> batchQueryOrganizationByOutCodes(List<String> outCodes);

    Map<String, EmployeeSDO> batchQueryEmplyee(List<String> ids);

    Map<String, CustomerSDO> batchQueryCustomer(List<String> codes);

    Map<String, CustomerAddressSDO> batchQueryCustomerAddress(List<String> ids);

    Map<String, CustomerAddressSDO> batchQueryCustomerAddressByCodes(List<String> codes);

    Map<String, CustomerAddressSDO> batchQueryCustomerAddressByCondition(List<String> ids,String orgSalesOrganizationCode);

    Map<String, ScItemSDO> batchQueryScItem(List<String> ids);

    Map<String, ScItemSDO> batchQueryScItemDetail(List<String> ids);

    Map<String, CategorySDO> batchQueryCategory(List<String> ids);

    List<OrganizationSDO> batchQueryOrganizationGetList(List<String> ids);

    List<CategorySDO> batchQueryCategoryGetList(List<String> ids);

    Map<String, ScItemSDO> batchQueryScItemByOutCodes(List<String> outCodes);

    Map<String, WmsSDO> batchQueryWmsByIds(List<String> outCodes);

    Map<String, PlatformSDO> batchQueryPlatformsByIds(List<String> ids);

    Map<String, PlatformSDO> batchQueryPlatformsByCodes(List<String> codes);

    Map<String, WarehouseInfoDTO> getLogicZoneInfo(List<String> warehouseAreaIds);

    Map<String, WarehouseInfo> getStoreInfo(List<String> warehouseAreaIds);

    Map<String, WarehouseInfo> getWarehouseInfo(List<String> warehouseIds);

    Map<String, WarehouseInfo> getFactoryLogicZoneInfo();

//    Integer convertScItemPCUnitNum(String scItemId, String unit);

}
